iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 30
10
Software Development

30天之即時網路影音開發攻略(小白本)系列 第 30

30-30之寫給想入門影音直播開發的 Junior 工程師攻略本

  • 分享至 

  • xImage
  •  

黑色好看版 - 傳送門


前言

這辛苦的三十天總於結束了,當初原本只是想要理解直播相關協議的東西一下,但是卻發現越來越多奇怪的名詞跑了出來,就算大概的知道 HLS 是要做什麼,但你總是會覺得前後知識好像缺了什麼,別人問你一下沒有 HLS 前是如何處理直播傳輸你大概就會倒了,然後上網查查相關知識,但卻發現總是沒有連貫起來的知識,越看越冒出更多的名詞,這對一名想入門影音直播開發的初學者,真的非常的辛苦。

因此最後就想說當個好人將這方面的知識都整理成一條線好了,因此就產生了這三十篇的文章。

這三十天的文章基本上理解完後,要開發出一個直播應用事實上就不是太難的事情了,而且你有了這三十篇的知識你接下來要將直播應用開發的更好,你就也更有本錢去學習更進階的東西囉。

接下來這篇文章就來總結一下這三十天咱們學習了那些東西。

影音直播開發的 Junior 工程師攻略本

基本上前二十篇是最基礎的東西,這幾篇文章就在說明,如何將一個人的聲音或影像傳遞給對方。。

https://ithelp.ithome.com.tw/upload/images/20181016/20089358XW7L8hFZHQ.png!

聲音與影像的採集、編碼與封裝

首先這五篇文章我們學習了聲音與影像是如何的儲放在電腦裡面,並且因為原始的聲音與影像太大,所以我們需要使用編碼來進行壓縮,最後就準備需要將聲音與影像進行封裝,為了可以讓別人一打開來知道要如何處理這一段聲音或影像編碼。

30-02之聲音的採集與原理
30-03之聲音的編碼與壓縮
30-04之影像的採集與原理
30-05之影像的編碼與壓縮
30-06之聲音與影像的封裝

接下來的兩篇文章,咱們就使用 WebRTC 的一些東西,來實作如何的採集聲音與影像,並且最後將它封裝成一個檔案。

30-07之Web 如何進行語音與影像採集 ?
30-08之 WebRTC 採集的詳細說明與聲音的加工

聲音與影像的傳輸

咱們已經可以將聲音與影像封裝後,就可以開始傳輸給遠方的某個人。

我們一開始先探討讓對方收到聲音與影像的方法有那些。

30-09之別人要如何聽到我的聲音呢 ?

接下來花了幾篇文章來理解網路傳輸協議。

30-10之通訊協議的基本常識
30-11之 TCP 與 UDP 協議
30-12之 RTP/RTCP 傳輸協議
30-13之 RTSP 傳輸協議
30-14之 RTMP 傳輸協議
30-15之 HLS 傳輸協議
30-16之 HTTP-FLV 傳輸協議
30-17之 MPEG-DASH 傳輸協議
30-18 之影音傳輸協議總整理

在理解完上面幾篇文章以後,我們應該是可以將聲音與影像傳輸給遠方的某個人。

聲音與影像的拆封

某個人透過網路傳輸協議收到了這一段聲音與影像以後,我們接下來就是要將聲音與影像直出,事實上它的過程就是與上面的採集、編碼、封裝相反的過程。

30-19 之收到聲音後要如何的播出呢 ? ( FFMpeg )

直播與點直的實作

基本概念學習完後,接下來就來進行一些實際上的實作。

下面幾篇文章中,我們簡單的實作了直播與點播的功能,並且探討了最簡單版本的問題,並且在使用 CDN 加以的改善,事實上到了這裡,大部份就是一般直播與點播平台的雛形。

30-20之如何建立像 KKTV 一樣的點播功能呢 ?
30-21之如何建立的像 17 一樣的直播功能呢 ?
30-22之點播與直播可動版問題探討
30-23之 CDN 的說話島 ( AWS CloudFront CDN 實作 )
30-24之直播與點播可動版的改良 ( 正式版 )

進階

最後的幾篇文章,就來探討一些更進階的東西,那就是連麥直播互動,這個應用幾乎算是影音直播開發的一到高牆,沒有上面幾篇基礎文章的觀念,那是非常難完成的。

30-25之直播連麥的挑戰與方案 ( P2P )
30-26之 WebRTC 的 P2P 即時通信與小範例
30-27之 WebRTC 的 Signaling Server
30-28之 WebRTC 連線前傳 - 為什麼 P2P 連線很麻煩 ? ( NAT )
30-29之 WebRTC 的 P2P 打洞術 ( ICE )

這裡順到說一下 WebRTC 並不一定是連麥直播的最佳解,但是它裡面所使用的概念,我覺得可以幫助我們導到最佳解,因此這裡才將它拿出來探討。

最後希望這一系列的文章,可以幫助到想學習影音直播開發的工程師們,節省更多的時間。

結束拉 !!!


上一篇
30-29之 WebRTC 的 P2P 打洞術 ( ICE )
系列文
30天之即時網路影音開發攻略(小白本)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
wangdu1005
iT邦新手 5 級 ‧ 2018-12-19 11:33:29

崇拜啊!我臉書帳號登不進去,另創一個來按讚

馬克 iT邦研究生 2 級 ‧ 2018-12-19 12:32:28 檢舉

你這樣我會害羞

/images/emoticon/emoticon35.gif

0
froce
iT邦大師 1 級 ‧ 2018-12-26 09:52:25

感謝這篇,最近想做個webRTC專案,幫助很大。

0
pjchender
iT邦新手 3 級 ‧ 2019-06-27 18:10:15

謝謝!受益良多!非常實用!

0
robby_hsieh
iT邦新手 4 級 ‧ 2021-01-15 15:55:33

受益良多 感謝!!

我要留言

立即登入留言